home *** CD-ROM | disk | FTP | other *** search
- -----BEGIN PGP SIGNED MESSAGE-----
- Hash: SHA1
-
- PGPuam - Public Key Authentication for AppleShare IP.
-
- By Vinnie Moscaritolo
- Last Revision 1.0b1 10/15/98
-
- THIS IS SAMPLE CODE!
-
- Before you go any further, I would suggest that you check my
- website at <http://www.vmeng.com/vinnie/Papers/pgpuam.html>
- to see if there is a nwer copy of both the code and/or
- documentation. This release is a bit premature, but I wanted
- to get the code out there to demonstrate what can be done
- with the AppleShare IP UAM sdk.
-
- WHAT IS IT?
-
- PGPuam is an enhancement to the standard AppleShare IP User
- Access Methods (UAM) that enables a user to perform two-way
- strongly authenticated logins to an AppleShare IP server
- from a Mac OS client. The PGPuam system consists of two
- major components, a client and a server plug-in.
-
- WHAT DOES IT RUN ON?
-
- I have tested the client on MacOS 8.5 PPC only. I have no
- reason to belive that it would not run on 8.1. It requires
- AppleShare Client 3.8.1 (or newer). The server works with
- AppleShare 6.1.
-
- EXPORT ISSUES.
-
- PGPuam does not contain any crypto code. It is purely for
- authentication use only. (In fact all Signatures and Random
- number generation is done via the PGPsdk) Therefor this code
- does not fall under jusidiction of ITAR. Feel free to enjoy
- it.
-
-
- HOW DOES IT WORK?
-
- Authentication with Cryptographic Signatures
-
- E-mail communication on the Internet faces a security
- challenge similar to network user authentication. Since
- e-mail packets are broadcast through public networks, these
- messages can also be eavesdropped on and counterfeited by
- unauthorized individuals. However e-mail vendors have been
- able to address this problem by leveraging public key
- cryptography to digitally sign and authenticate e-mail
- messages.
-
- In a public key cryptosystem, each user or principle
- generates a pair of mathematically-related cryptographic
- keys. These keys are created in such a way that it is
- computationally infeasible to derive one key from the other.
- One of the keys is made publicly available to anyone who
- wishes to communicate with that user. The other key is kept
- private and never revealed to anyone else. This private key
- is secured by either placing it in a hardware token or
- further encrypting it to a passphrase, or both. The private
- key is then used by the principal to digitally sign data.
- This digital signature can later be checked with the
- matching public key to ensure that the data has not been
- tampered with and that it originated from the holder of the
- private key.
-
- Since the holder of the private key is the only entity who
- can create a digital signature that verifies with the
- corresponding public key, there is a strong correlation
- between a user’s identity and the ability to sign with that
- private key. Thus the public key can function as a
- principle’s identity in cyberspace .
-
- Because they provide such strong testimony to the
- authenticity of the sender, public-key cryptographic systems
- are becoming very popular among today’s Internet e-mail
- users.
-
- The same digital signature technology that guarantees the
- identity of the e-mail sender can be used to strongly
- authenticate users of network services, too. By having the
- user sign a random challenge message from the server at
- login, the server can verify the identity of the user with
- his public key. The server randomly creates the challenge
- message to prevent replay attacks. This process is
- illustrated in the following scenario :
-
- 1. The user initiates network service access.
-
- 2. The server looks up the user’s public key in its
- authentication database. The server then generates a
- random challenge string and sends the challenge to the
- client.
-
- 3. The client digitally signs the challenge string and
- returns the cryptographic signature to the server. The
- client also sends a counter challenge string which is used
- to verify the server’s authenticity.
-
- 4. The server then checks the client’s signature and, if
- successful, grants access. It also signs and returns the
- client’s counter-challenge.
-
- This process provides several significant advantages over
- password based user authentication systems:
-
- - - Since the same key and passphrase used to sign e-mail
- messages is also used for server access, the user need only
- remember one passphrase. This is done without the risks
- associated with passphrase caches.
-
- - - Strong user authentication is provided by cryptographic
- digital signatures.
-
- - - Since the user maintains the only secret material in the
- system, compromising a server’s user database results in
- limited damage.
-
- While similar systems have been proposed by a number of
- researchers they lacked the availability of a
- widely-accepted key infrastructure. Since PGP already has a
- large key infrastructure, I have chosen to exploit this by
- building a challenge-response system using the PGP software
- developers kit (PGPsdk), which is avilable from the pgp
- website <http://www.pgp.com/sdk/>.
-
- ABOUT THE CODE.
-
- PGPuam is a Metrowerks Codewarrior PRO 4 project. The code
- is considered sample code for now. It uses a bunch of
- technologies such as: CFM, Appearance Manager, Collections
- Manager, PGPsdk etc. So there is a lot to learn by examining
- the code itself.
-
- HOW DO I BUILD IT?
-
- 1) Before starting, you must get a copy of the PGPsdk. You
- can download it from <http://www.pgp.com/sdk/>. Place the
- Library and the Headers in the PGPsdkMac folder.
-
- 2) Build the "PGPuam Client" Project.
-
- - - Move the result, a file called "PGPuam" into either the
- Extensions folder or optionaly create folder titled
- "AppleShare Folder" place it in either the Extensions folder
- or System Folder and place the PGPuam file in that folder.
-
- 3) Build the "PGPuam Server" Project.
-
- - - The "PGPuam Server" files goes into the "AppleShare IP
- UAM" folder (found in Extensions folder) of the Server
- machine.
-
- - - Unfortunately you must also Modify the "AppleShare IP
- Registry" SIZE resource to be something much larger than it
- is now. I suggest adding at least 1K more space. You can
- use RESEDIT or whatever to do this.
-
- Now comes the fun part, setting up the Keys. As of this
- document date I haven't quite finished the code to upload
- keys into the AppleShare IP database. So for now its an ugly
- manual process. I have a piece of incomplete code in the
- "In process" folder titled dumpuserInfo.c"
-
- STAY TUNED.
-
- I plan to actively update this code in the near future. So
- check the Website every now and them for the latest update.
-
-
- Vinnie Moscaritolo
- World Wide DTS, Apple Computer.
- - ------------------
- http://www.vmeng.com/vinnie/
- DSS/DH: 3F903472C3AF622D5D918D9BD8B100090B3EF042
-
-
-
-
-
-
-
-
- -----BEGIN PGP SIGNATURE-----
- Version: PGP 6.0
-
- iQA/AwUBNiZWuR16LYZvFyoKEQLVxQCdHUpyS3rq/xegUrcg/Ted1uuEfjAAn0KU
- 2bt3Zs310d288x8eDAsVTJ5J
- =HIbc
- -----END PGP SIGNATURE-----
-